home *** CD-ROM | disk | FTP | other *** search
-
-
-
- RRRRSSSSHHHHDDDD((((1111MMMM)))) RRRRSSSSHHHHDDDD((((1111MMMM))))
-
-
-
- NNNNAAAAMMMMEEEE
- rshd - remote shell server
-
- SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- ////uuuussssrrrr////eeeettttcccc////rrrrsssshhhhdddd [[[[----aaaallllnnnnLLLL]]]]
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- _R_s_h_d is the server for the _r_c_m_d(3N) routine and, consequently, for the
- _r_s_h(1C) program. The server provides remote execution facilities with
- authentication based on privileged port numbers from trusted hosts. The
- ----aaaa option verifies the remote host name and address match on all incoming
- connections. Normally this check is performed only for connections from
- hosts in the local domain. The ----llll option disables validation using
- ._r_h_o_s_t_s files. Transport-level keep-alive messages are enabled unless
- the ----nnnn option is present. The use of keep-alive messages allows sessions
- to be timed out if the client crashes or becomes unreachable. The ----LLLL
- option causes all successful accesses to be logged to _s_y_s_l_o_g_d(1M) as
- _a_u_t_h._i_n_f_o messages. These options should specified in the
- /_e_t_c/_i_n_e_t_d._c_o_n_f file (see _i_n_e_t_d(1M)).
-
- _R_s_h_d listens for service requests at the port indicated in the ``cmd''
- service specification; see _s_e_r_v_i_c_e_s(4). When a service request is
- received the following protocol is initiated:
-
- 1) The server checks the client's source port. If the port is not in
- the range 512-1023, the server aborts the connection.
-
- 2) The server reads characters from the socket up to a null (`\0') byte.
- The resultant string is interpreted as an ASCII number, base 10.
-
- 3) If the number received in step 2 is non-zero, it is interpreted as
- the port number of a secondary stream to be used for the ssssttttddddeeeerrrrrrrr. A
- second connection is then created to the specified port on the
- client's machine. The source port of this second connection is in
- the range 513-1023.
-
- 4) The server checks the client's source address and requests the
- corresponding host name (see _g_e_t_h_o_s_t_b_y_a_d_d_r(3N), _h_o_s_t_s(4) and
- _n_a_m_e_d(1M)). If the hostname cannot be determined, the dot-notation
- representation of the host address is used.
-
- 5) A null terminated user name of at most 16 characters is retrieved on
- the initial socket. This user name is interpreted as the user
- identity on the cccclllliiiieeeennnntttt's machine.
-
- 6) A null terminated user name of at most 16 characters is retrieved on
- the initial socket. This user name is interpreted as a user identity
- to use on the sssseeeerrrrvvvveeeerrrr's machine.
-
- 7) A null terminated command to be passed to a shell is retrieved on the
- initial socket. The length of the command is limited by the upper
- bound on the size of the system's argument list.
-
-
-
- PPPPaaaaggggeeee 1111
-
-
-
-
-
-
- RRRRSSSSHHHHDDDD((((1111MMMM)))) RRRRSSSSHHHHDDDD((((1111MMMM))))
-
-
-
- 8) _R_s_h_d then validates the user according to the following steps. The
- local (server-end) user name is looked up in the password file. If
- the lookup fails, the connection is terminated. _R_s_h_d then tries to
- validate the user using _r_u_s_e_r_o_k(3N), which uses the file
- /_e_t_c/_h_o_s_t_s._e_q_u_i_v and the ._r_h_o_s_t_s file found in the user's home
- directory. If the user is not the super-user, (user id 0), the file
- /_e_t_c/_h_o_s_t_s._e_q_u_i_v is consulted for a list of hosts considered
- ``equivalent''. If the client's host name is present in this file,
- the authentication is considered successful. If the lookup fails, or
- the user is the super-user, then the file ._r_h_o_s_t_s in the home
- directory of the remote user is checked for the machine name and
- identity of the user on the client's machine. If this lookup fails,
- the connection is terminated. The ----llll option prevents _r_u_s_e_r_o_k(3N)
- from doing any validation based on the user's ``.rhosts'' file,
- unless the user is the superuser.
-
- Under Trusted IRIX/CMW, only the first field of the /etc/hosts.equiv
- and $HOME/.rhosts files is relevant to the system. The second field
- is ignored as a comment. This behavior places a restriction on the
- rsh and rlogin programs, which do not allow unchallenged access
- (access without demanding a password) unless the remote user name and
- user ID are exactly identical to the local user name and user ID. If
- a different name or user ID is used, the user is prompted for a
- password that authenticates the user's identity in the usual manner.
- The MAC label of the $HOME/.rhosts file must be dominated by the MAC
- label of the login session, otherwise the user will be prompted for a
- password. It is recommended that the $HOME/.rhosts file be labeled
- such that it is dominated by all other labels that the user can login
- with.
-
- 9) If the file /_e_t_c/_n_o_l_o_g_i_n exists and the user is not the super-user,
- the connection is closed.
-
- 10) A null byte is returned on the initial socket and the command line is
- passed to the normal login shell of the user. The shell inherits the
- network connections established by _r_s_h_d.
-
- SSSSHHHHAAAARRRREEEE IIIIIIII AAAACCCCTTTTIIIIOOOONNNNSSSS
- If the Share II system is installed and enabled, then the following
- privilege and resource checks are made immediately after validation
- checks are passed but before the shell is started:
-
- 1. If your _nnnn_oooo_llll_oooo_gggg_iiii_nnnn flag is set, or you already have another connection
- and your _oooo_nnnn_eeee_llll_oooo_gggg_iiii_nnnn flag is set, then you are denied connection.
-
- 2. If a disk usage exceeds its soft disk limit in any of your domains,
- then a message is printed and you are given a _w_a_r_n_i_n_g. If you
- accumulate too many warnings, further connection attempts are denied
- and you must see your subadministrator to rectify the situation.
- Whenever you connect with no disk usages in excess of any soft
- limits, all your accumulated warnings are cleared.
-
-
-
-
- PPPPaaaaggggeeee 2222
-
-
-
-
-
-
- RRRRSSSSHHHHDDDD((((1111MMMM)))) RRRRSSSSHHHHDDDD((((1111MMMM))))
-
-
-
- 3. If you do not have permission to use an _r_s_h connection, as determined
- by the terminal permission flag _tttt_eeee_rrrr_mmmm_iiii_nnnn_aaaa_llll_...._ffff_llll_aaaa_gggg_...._rrrr_ssss_hhhh, then you are
- denied connection.
-
- 4. Some installations place limits on terminal connect-time, which apply
- equally to connection by way of _r_s_h. If you have already reached
- your connect-time limit, then you are denied connection. Otherwise,
- if you have a limit, your remaining connect-time is printed.
-
- If all of these checks are passed, _rrrr_ssss_hhhh_dddd proceeds normally.
-
- For each new instance of a remotely initiated process, rshd first reads
- the configuration file _////_eeee_tttt_cccc_////_dddd_eeee_ffff_aaaa_uuuu_llll_tttt_////_rrrr_ssss_hhhh_dddd. Currently the only switch in
- this file is SVR4_SIGNALS, which indicates if SVR4 signal defaults should
- be used, and defaults to `YES'. This means that processes spawned by rshd
- will run with the SIGXFSZ and SIGXCPU signals disabled (i.e. ignored).
- For CPU and filesize resource limiting to work correctly, this file
- should be edited and SVR4_SIGNALS set to `NO', so that these signal
- retain their default behaviour, which is to terminate the process.
-
- FFFFIIIILLLLEEEESSSS
- _////_eeee_tttt_cccc_////_llll_iiii_mmmm_cccc_oooo_nnnn_ffff The compiled Share II configuration file (machine
- readable).
-
- _////_eeee_tttt_cccc_////_dddd_eeee_ffff_aaaa_uuuu_llll_tttt_////_rrrr_ssss_hhhh_dddd Default behaviour configuration file
-
- SSSSEEEEEEEE AAAALLLLSSSSOOOO
- login(1), rsh(1C), rexecd(1M), rcmd(3N), ruserok(3N), share(5)
-
- DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS
- Except for the last one listed below, all diagnostic messages are
- returned on the initial socket, after which any network connections are
- closed. An error is indicated by a leading byte with a value of 1 (0 is
- returned in step 10 above upon successful completion of all the steps
- prior to the execution of the login shell).
-
- ````````llllooooccccuuuusssseeeerrrr ttttoooooooo lllloooonnnngggg''''''''
- The name of the user on the client's machine is longer than 16
- characters.
-
- ````````rrrreeeemmmmuuuusssseeeerrrr ttttoooooooo lllloooonnnngggg''''''''
- The name of the user on the remote machine is longer than 16 characters.
-
- ````````ccccoooommmmmmmmaaaannnndddd ttttoooooooo lllloooonnnngggg ''''''''
- The command line passed exceeds the size of the argument list (as
- configured into the system).
-
- ````````LLLLooooggggiiiinnnn iiiinnnnccccoooorrrrrrrreeeecccctttt....''''''''
- No password file entry for the user name existed. (Logged to the
- _s_y_s_l_o_g_d(1M) daemon as an _a_u_t_h._n_o_t_i_c_e message.)
-
-
-
-
-
- PPPPaaaaggggeeee 3333
-
-
-
-
-
-
- RRRRSSSSHHHHDDDD((((1111MMMM)))) RRRRSSSSHHHHDDDD((((1111MMMM))))
-
-
-
- ````````NNNNoooo rrrreeeemmmmooootttteeee ddddiiiirrrreeeeccccttttoooorrrryyyy....''''''''
- The _c_h_d_i_r command to the home directory failed. (Logged as an
- _a_u_t_h._n_o_t_i_c_e message.)
-
- ````````PPPPeeeerrrrmmmmiiiissssssssiiiioooonnnn ddddeeeennnniiiieeeedddd....''''''''
- The authentication procedure described above failed. (Logged as an
- _a_u_t_h._n_o_t_i_c_e message.)
-
- ````````CCCCoooonnnnnnnneeeeccccttttiiiioooonnnn rrrreeeecccceeeeiiiivvvveeeedddd uuuussssiiiinnnngggg IIIIPPPP ooooppppttttiiiioooonnnnssss ((((iiiiggggnnnnoooorrrreeeedddd))))''''''''
- The remote host tried to use explicit IP source routing.
-
- ````````CCCCoooonnnnnnnneeeeccccttttiiiioooonnnn ffffrrrroooommmm <<<<hhhhoooosssstttt>>>> oooonnnn iiiilllllllleeeeggggaaaallll ppppoooorrrrtttt''''''''
- The remote host used a nonprivileged port.
-
- ````````CCCCaaaannnn''''tttt ffffiiiinnnndddd nnnnaaaammmmeeee ffffoooorrrr <<<<aaaaddddddddrrrreeeessssssss>>>>''''''''
- No hostname was found for the IP address. The authentication procedure
- described above will use the IP address.
-
- ````````HHHHoooosssstttt aaaaddddddddrrrr <<<<xxxx>>>> nnnnooootttt lllliiiisssstttteeeedddd ffffoooorrrr hhhhoooosssstttt <<<<yyyy>>>>''''''''
- The remote host's name and address did not match. The authentication
- procedure described above will use the IP address instead of the name.
-
- ````````CCCCaaaannnn''''tttt mmmmaaaakkkkeeee ppppiiiippppeeee....''''''''
- The pipe needed for the ssssttttddddeeeerrrrrrrr, wasn't created.
-
- ````````TTTTrrrryyyy aaaaggggaaaaiiiinnnn....''''''''
- A _f_o_r_k by the server failed.
-
- ````````<<<<sssshhhheeeellllllllnnnnaaaammmmeeee>>>>:::: ............''''''''
- The user's login shell could not be started. This message is returned on
- the connection associated with the ssssttttddddeeeerrrrrrrr, and is not preceded by a flag
- byte.
-
- The Share II specific diagnostic messages are listed as follows:
-
- ````````WWWWaaaarrrrnnnniiiinnnngggg <<<<XXXX>>>> ooooffff <<<<YYYY>>>>:::: ssssoooofffftttt ddddiiiisssskkkk lllliiiimmmmiiiitttt eeeexxxxcccceeeeeeeeddddeeeedddd....''''''''
- One of your domains has a disk usage in excess of its soft limit.
-
- ````````CCCCoooonnnnnnnneeeeccccttttiiiioooonnnn ddddeeeennnniiiieeeedddd.... TTTToooooooo mmmmaaaannnnyyyy wwwwaaaarrrrnnnniiiinnnnggggssss....''''''''
- You have reached your warning limit. See your subadministrator.
-
- ````````CCCCoooonnnnnnnneeeeccccttttiiiioooonnnn ddddeeeennnniiiieeeedddd.... AAAAllllrrrreeeeaaaaddddyyyy llllooooggggggggeeeedddd iiiinnnn ---- oooonnnnllllyyyy oooonnnneeee llllooooggggiiiinnnn aaaalllllllloooowwwweeeedddd....''''''''
- You are already connected to the system and your _oooo_nnnn_eeee_llll_oooo_gggg_iiii_nnnn flag is set.
-
- ````````CCCCoooonnnnnnnneeeeccccttttiiiioooonnnn ddddeeeennnniiiieeeedddd.... CCCCuuuurrrrrrrreeeennnnttttllllyyyy bbbbaaaarrrrrrrreeeedddd ffffrrrroooommmm llllooooggggggggiiiinnnngggg iiiinnnn....''''''''
- Your _nnnn_oooo_llll_oooo_gggg_iiii_nnnn flag is set.
-
- ````````CCCCoooonnnnnnnneeeeccccttttiiiioooonnnn ddddeeeennnniiiieeeedddd.... NNNNoooo ppppeeeerrrrmmmmiiiissssssssiiiioooonnnn ttttoooo uuuusssseeee tttthhhhiiiissss tttteeeerrrrmmmmiiiinnnnaaaallll....''''''''
- You are not allowed to log in at this terminal because of a clear
- _tttt_eeee_rrrr_mmmm_iiii_nnnn_aaaa_llll_...._ffff_llll_aaaa_gggg_...._rrrr_ssss_hhhh flag.
-
-
-
-
-
- PPPPaaaaggggeeee 4444
-
-
-
-
-
-
- RRRRSSSSHHHHDDDD((((1111MMMM)))) RRRRSSSSHHHHDDDD((((1111MMMM))))
-
-
-
- ````````YYYYoooouuuu hhhhaaaavvvveeee aaaa rrrreeeemmmmaaaaiiiinnnniiiinnnngggg tttteeeerrrrmmmmiiiinnnnaaaallll ccccoooonnnnnnnneeeecccctttt----ttttiiiimmmmeeee ooooffff <<<<YYYY>>>>....''''''''
- You may use this connection until you have used up your remaining
- connect-time, at which point you are forced to disconnect.
-
- ````````CCCCoooonnnnnnnneeeeccccttttiiiioooonnnn ddddeeeennnniiiieeeedddd.... TTTTeeeerrrrmmmmiiiinnnnaaaallll ccccoooonnnnnnnneeeecccctttt----ttttiiiimmmmeeee lllliiiimmmmiiiitttt eeeexxxxcccceeeeeeeeddddeeeedddd....''''''''
- You have already reached your terminal connect-time limit.
-
- ````````SSSShhhhaaaarrrreeee nnnnooootttt ccccoooonnnnffffiiiigggguuuurrrreeeedddd ---- nnnnoooo lllliiiimmmmiiiitttt cccchhhheeeecccckkkkssss....''''''''
- The configuration file is unreadable for some reason, so terminal
- privileges, connect-time limits and disk space limits could not be
- checked.
-
- BBBBUUUUGGGGSSSS
- The authentication procedure used here assumes the integrity of each
- client machine and the connecting medium. This is insecure, but is
- useful in an ``open'' environment.
-
- A facility to allow all data exchanges to be encrypted should be present.
-
- A more extensible protocol should be used.
-
- NNNNOOOOTTTTEEEESSSS
- _r_s_h_d will set the _L_A_N_G environment variable if it is specified in
- $$$$HHHHOOOOMMMMEEEE////....llllaaaannnngggg.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 5555
-
-
-
-